package com.opentae.data.mall.interfaces;

import com.opentae.core.mybatis.config.MyBatisRepository;
import com.opentae.core.mybatis.mapper.Mapper;
import com.opentae.data.mall.beans.FlashItemInfo;
import com.opentae.data.mall.beans.LimitGoods;
import com.opentae.data.mall.beans.MallItem;
import org.apache.ibatis.annotations.Param;
import org.springframework.context.annotation.Lazy;
import org.springframework.context.annotation.Scope;

import java.util.List;

/**
 * Created by exampleCreater.
 */
@MyBatisRepository("tae_mall_mallItemMapper")
@Scope("singleton")
@Lazy(true)
public interface MallItemMapper extends Mapper<MallItem> {
    MallItem selectByItemCode(@Param("itemCode") String itemCode);

    int checkSameCode(@Param("itemCode") String itemCode);

    /**
     * @description 商品编码
     * @author 郭尔
     * @date 2019/1/14 14:10
     */
    int checkOtherSameCode(@Param("itemCode") String itemCode, @Param("itemId") Long itemId);

    String selSkus(@Param("itemId") Long itemId);

    /**
     * @description 下拉框
     * @author 郭尔
     * @date 2019/1/19 17:20
     */
    List<MallItem> selNotAdvert(@Param("type") Integer type);

    /**
     * @description
     * @author 郭尔
     * @date 2019-06-14 19:00
     */
    int countChildItem(@Param("cid") Long cid);

    /**
     * @description 增加销量
     * @author 郭尔
     * @date 2019-06-20 14:51
     */
    int changeSales(@Param("itemId") Long itemId, @Param("num") Integer num);

    /**
     * @author 沐风
     * @Descirption 查询新品
     * @date 2019/8/30 7:11 PM
     */
    List<MallItem> findByDate(@Param("start") Integer page, @Param("size") Integer size);

    /**
     * @author 沐风
     * @Descirption 热销商品
     * @date 2019/8/30 8:28 PM
     */
    List<MallItem> findHotGoods(@Param("start") Integer page, @Param("size") Integer size);

    /**
     * @author 沐风
     * @Descirption 限时抢购
     * @date 2019/8/30 8:40 PM
     */
    List<FlashItemInfo> findFlash(@Param("start") Integer page, @Param("size") Integer size);

    /**
     * @author      沐风
     * @Descirption 获取限时商品列表
     * @date        2019/8/31 1:58 PM
     */
    List<LimitGoods> getLimitGoods();
}
